package cn.seifly.demo.example;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * MyBatis-Plus 分页使用示例
 */
@RestController
@RequestMapping("/example")
public class ExampleController extends BaseController {

    // @Autowired
    // private YourMapper yourMapper;

    /**
     * MyBatis-Plus 分页查询示例
     */
    @GetMapping("/page")
    public TableDataInfo page() {
        // 方式1：使用工具类创建分页对象
        // IPage<YourEntity> page = MyBatisPlusPageUtils.getPage();
        // IPage<YourEntity> result = yourMapper.selectPage(page, null);
        // return MyBatisPlusPageUtils.convertToTableDataInfo(result);

        // 方式2：手动创建分页对象
        // Page<YourEntity> page = new Page<>(1, 10);
        // IPage<YourEntity> result = yourMapper.selectPage(page, null);
        // return MyBatisPlusPageUtils.convertToTableDataInfo(result);

        // 临时返回空数据作为示例
        TableDataInfo dataInfo = new TableDataInfo();
        dataInfo.setCode(200);
        dataInfo.setMsg("MyBatis-Plus 分页示例");
        dataInfo.setRows(null);
        dataInfo.setTotal(0);
        return dataInfo;
    }

    /**
     * 兼容旧分页方式的示例
     */
    @GetMapping("/compatible")
    public TableDataInfo compatiblePage() {
        // 保留原有的 startPage() 调用以兼容现有代码
        startPage();

        // 使用 MyBatis-Plus 分页
        // Page<YourEntity> page = MyBatisPlusPageUtils.getPageWithoutOrder();
        // IPage<YourEntity> result = yourMapper.selectPage(page, null);
        // return MyBatisPlusPageUtils.convertToTableDataInfo(result);

        // 临时返回空数据作为示例
        TableDataInfo dataInfo = new TableDataInfo();
        dataInfo.setCode(200);
        dataInfo.setMsg("兼容分页示例");
        dataInfo.setRows(null);
        dataInfo.setTotal(0);
        return dataInfo;
    }
}